Aanmaken van DCP's (Digital Cinema Packages) - een onderzoek
 

Voor het hoe, wat en waarom van DCP's verwijs ik naar de volgende websites. Een greep uit honderden pagina's over het onderwerp :

Het doel van dit onderzoek is om na te gaan of het mogelijk is om zelf DCP's aan te maken, gebruik makend van bestaande freeware (om te beginnen), zonder al te doorgedreven technische kennis en inzicht in zowel video en film postproductie als specifieke computer hard- en software kennis.
Indien zou blijken dat het te complex of te instabiel wordt op die manier, ga ik op zoek naar oplossingen die wel betrouwbaar/beheersbaar zijn, met een zo klein mogelijk prijskaartje.

Een eerste vaststelling : er is nogal wat informatie ter beschikking op het internet, maar helaas is een groot deel daarvan heel technisch, en voor mij moeilijk of niet te begrijpen, gelukkig heb ik ook een aantal "simpelere" handleidingen gevonden.
Een tweede vaststelling. Als ik er al in slaag om een DCP aan te maken, dan heb ik een DCP player nodig om te testen of een en ander ook daadwerkelijk werkt. Tenzij ik "softwareDCP player" kan vinden. Misschien kan die dan zelfs dienen om "not encrypted" DCP's in de KASK cinema weer te geven ? (daarover later meer)

 

Ik probeer eerst de problemen die zich aandienen voor het aanmaken van het DCP op te splitsen :

  1. aanmaken van de diverse video, audio en ondersteunende files
  2. het samenstellen van het "package"
  3. het aanmaken van de disc voor distributie

Voor alledrie kan gesteld worden dat er weinig of geen foutmarge bestaat. De files moeten aangeleverd worden in een heel specifiek formaat, ondergebracht worden in een heel precieze structuur, en weggeschreven worden naar een disc die op haar beurt ook maar op één manier mag geformatteerd worden.

1. van source file naar DCP.

Als source komt in theorie elk formaat in aanmerking. Zoals bij alle conversies zal het definitief resultaat uiteraard afhankelijk zijn van de kwaliteit van het origineel. Je maakt daarom gebruik van de minst gecompresserde versie van je film die je ter beschikking hebt (zowel in codec als beeldformaat). De enige beperking zit hem in de software die de conversie gaat doen : dat programma moet je source materiaal uiteraard kunnen "lezen".

Video en Audio files zullen uiteindelijk aan onderstaande conventies moeten voldoen (meer detail hier) :

Picture MXF files
Picture contents are stored in one or more reels corresponding to one or more MXF files. Each reel contains pictures as MPEG-2 or JPEG 2000 essence, depending on the adopted codec. MPEG-2 is no longer compliant with the DCI specification. JPEG 2000 is the only accepted compression format.

  1. Supported frame rates are 24, 25, 30, 48, 50, and 60 frames per second. Maximum frame size is 2048x1080 for 2K DC (24, 25, 30, 48, 50, and 60 frames per second), and 4096x2160 for 4K DC (24, 25, and 30 frames per second).
    Common formats are:
    1. Flat (1998x1080 or 3996x2160), ~1.85:1 aspect ratio
    2. Scope (2048x858 or 4096x1716), ~2.39:1 aspect ratio
  2. 12 bits per pixel precision (36 bits total)
  3. XYZ colorspace
  4. Maximum bit rate is 250 Mbps (1.3 MBytes per frame at 24 fps)

Sound MXF files
Sound contents are stored in reels, too, corresponding to picture reels in number and duration. In case of multilingual features, separate reels are required to convey different languages. Each file contains linear PCM essence.

  1. Sampling rate is 48,000 or 96,000 samples per second
  2. Sample precision of 24 bits
  3. Linear mapping (no companding)
  4. Up to 16 independent channels.

Voor het beeld wil dat zeggen :

  1. Ik zal op zoek moeten naar de JPEG 2000 codec, die idealieter zou moeten kunnen gebruikt worden in Compressor (een beproefde en vertrouwde werkomgevig). Er bestaan commerciele oplossingen voor, maar ik ging eerst proberen om alles gratis te doen.
  2. de YUV of RGB colorspace zal moeten vertaald worden naar een XYZ colorspace (klik hier voor een beetje uitleg)

En voor de klank :

  1. mono/stereo/5.1/... conformeren naar discrete kanalen
  2. indien nodig : sample rate en bit depht aanpassen bij het hercoderen

OpenDCP

Is het programma waar ik mee aan de slag ga (download OpenDCP v0.0.26 Macintosh OSX 64-bit hier)

Beeld

De OpenDCP interface is behoorlijk duidelijk, maar vraagt wel een minimale kennis van de gebruikte terminologie.

Je kan niet vertrekken van een niet sequentiele file, dus ga ik eerst naar Compressor, om daar die sequentiele file aan te maken. Om het spannend te houden vertrek ik van een XDCAM EX 50i source, 1920x1080, 25 FPS (op meerdere manieren een "foute" source) die ik in eerste instantie exporteer als een sequentiele TIFF file.
Hieronder de Compressor settings:

 

Voorlopig lukt het mij niet om rechtsreeks vanuit Compressor JPEG2000 files aan te maken. Voor deze test maak ik dus eerst Tiff's aan, in 2K resolutie (2048x1080). In principe is ook 1920x1080 een "legal format", maar 2K staat nu eenmaal beter ;-)

Daarom gebruik ik 34 pixels padding links en rechts (34+1980+34 = 2048).

En aangezien het bronmateriaal interlaced is moet ik het deinterlacen uiteraard.

 

Vervolgens converteer ik de TIFFs naar JPEG2000 in/met OpenDCP.

 


Hieronder drie maal een uitsnede (500x300 px) uit hetzefde frame : Van links naar rechts : origineel, TIFF en JPEG2000 (klik op een van de afbeeldingen voor een Full Size weergave)

De color shift is vermoedelijk normaal aangezien de colorspace verandert van YUV naar RGB naar XYZ, terwijl alles op deze webpagina op dezelfde manier gedecodeerd wordt. Ik zal dit later nog in meer detail bestuderen. Eerst even afwachten of ik deze piste tot het einde kan volgen.

In een volgende stap gebruik ik OpenDCP om van deze sequential file(s) één MXF file (Media eXchange Format) te maken, wat zonder problemen lukt.

Klank

Voor de klank exporteer ik left en right als aparte klankfiles (vanuit FCP) in het juiste formaat : 48 kHZ / 24 bits. Vzervolgens gebruik ik opnieuw OpenDCP om alles als MXF in te pakken. Ook dat lukt probleeemloos via de duidelijke OpenDCP interface.

Als laatse stap creëer ik de DCP file, alweer probleemloos in OpenDCP.

het resultaat :

Alles bij mekaar niet zo complex of ingewikkeld, op voorwaarde dat je een aantal basics beheerst.

De volgende stappen zijn : testen van het DCP (op de computer, later in de bioscoop) en de files wegschrijven naar een DCP-server compatibel formaat (Linux EXT2).